/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package client;

import HelloApp.*;
import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;
import org.omg.CORBA.*;

/**
 *
 * @author Patrick Füssinger
 */
public class HelloClient {

    public static void main(String args[]) {
        try {

            // create and initialize the ORB
            ORB orb = ORB.init(args, null);

            // get the root naming context
            org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService");

            // Use NamingContextExt instead of NamingContext. This is
            // part of the Interoperable naming Service
            NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);

            // resolve the Object Reference in Naming
            Hello helloStub = HelloHelper.narrow(ncRef.resolve_str("HelloObject"));
            System.out.println("Obtained a handle on server object: " + helloStub);
            System.out.println(helloStub.sayHello());
            helloStub.shutdown();
        } catch (Exception e) {
            System.out.println("ERROR : " + e);
            e.printStackTrace(System.out);
        }
    }
}